For color digital imaging systems, each step of the imaging chain (original scene, image capture, image storage, image transmission, soft display, hard copy display, etc.) will, in general, have different color spaces, as well as different color gamuts. Typical color spaces would include device-dependent spaces such as RGB, CMY, and CMYK or device-independent spaces such as CIE tristimulus (XYZ), CIELAB, and CIELUV. The term color gamut is generally used to refer to the range of colors which can be represented and/or displayed at some particular stage in the system. The color gamut of a display device may be quite different from the gamut of the image capture device and/or the gamut of colors in some original real world scene. Additionally, the gamut of colors which can be displayed with one device may be substantially different from the color gamut of some other device. For example, consider FIG. 1 which illustrates the color gamut of a typical RGB color video monitor, as compared to the gamut of a Kodak XL7700 color printer. The plot shows a slice through the gamuts in CIELAB color space at a lightness value of L*=50.0. The area of overlap for the two gamuts indicates the colors which can be produced on both devices. The regions which are inside only one of the curves represent colors which can be produced on one device, but not on the other. The color values which are outside both curves cannot be produced by either device. For this example, it can be seen that the video monitor can produce much more saturated blues than the thermal printer at this lightness level, but the thermal printer, on the other hand, can produce more saturated yellows.
In many applications, it is necessary to take color image data which exists in one color space and map it into a different color space. Because of the differences in the color spaces and the color gamuts of various devices, several problems arise in this process. The first one is the matter of color calibration. That is, how do you specify the color on one device so that the perceived color matches that of another device. For example, one might have an image which is displayed on a video monitor and would then like to create a print which has the same perceived color reproduction. This problem is essentially one of transforming from one device-dependent color space to another. In the example just given, this would involve transforming from the monitor RGB space to the printer CMY(K) space. If all of the colors in the image are in the overlap region of the two color gamuts then this transformation is relatively straightforward and can be done using techniques such as multi-dimensional look-up-tables (see: W. F. Schreiber, "Color Reproduction System," U.S. Pat. No. 4,500,919 (Feb. 19, 1985)).
However, if some of the colors in the input color space are outside of the gamut of the output color space, the problem is somewhat more complicated. The question then becomes what should be done with the out-of-gamut colors. Several different methods to handle this problem have been suggested in the past. Some of the more common approaches have been to maintain the hue angle and lightness for the out-of-gamut colors and clip the saturation to the gamut boundary, or to somehow compress the gamut so that the input color gamut fits within the output color gamut. (for example, see R. S. Gentile, E. Walowit and J. P. Allebach, "A comparison of techniques for color gamut mismatch compensation," J. Imaging Technol. 16, 176-181 (1990)). For many kinds of images, such as photographic scenes, the saturation clipping approach may yield acceptable results because very few out-of-gamut colors will occur. However, for other types of images, such as computer generated presentation graphics, a large percentage of the colors may be outside the gamut. This is due to the fact that saturated colors are very appealing for many kinds of graphics such as pie charts, and slide presentations, etc. Using an approach which clips the saturation or compresses the gamut may yield quite unacceptable results due to the fact that the resulting images will be noticeably lower in saturation (i.e., the colors will appear to be more pastel, and will have less "snap"). As a result, different techniques are necessary to map the input color gamut into the output color space. Since this involves modifying the colors in the image, rather than simply matching the colors from one device to another, this falls into the category of "color enhancement."
In addition to addressing the reproduction of out of gamut colors, color enhancement can also include other forms of color transformation. For example, one might want to boost the saturation of a hazy image, adjust the hue of an object in the image, or increase the color contrast between different objects in the image. Different color enhancement methods include using combinations of matrices and one-dimensional look-up tables (for example see: Robert P. Collette, "Color and tone scale calibration system for a printer using electronically generated input images," U.S. Pat. No. 5,081,529, Jan. 14, 1992), and global gamut mapping techniques (for example see K. Spaulding, R. Gershon, J. Sullivan, and R. Ellson, "Method and Associated Apparatus for Transforming Input Color Values in an Input Color Space to Output Color Values in an Output Color Space", referenced above as U.S. patent application Ser. No. 08/017,198. With any of these approaches, specifying a mapping that has the desired effect on the saturated colors without having undesirable side effects on other colors can be quite difficult or even impossible. For example, skin tones which might occur in the image might end up turning greenish, etc.
This invention addresses a method for mapping (transforming) one color space into another by explicitly specifying the mapping for some subset of the points within the color space and for determining the remaining unconstrained points according to a defined mapping strategy.